package com.linktel.productionLine.dao;

import com.linktel.productionLine.entity.BaseStep;
import com.linktel.productionLine.entity.dto.baseStep.BaseStepDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author Linktel
 * @description 针对表【base_step(工序)】的数据库操作Mapper
 * @Date 2023-08-30 12:32:32
 */
public interface BaseStepDao {

    /**
     * 查询所有工序
     *
     * @return 工序列表
     */
    List<BaseStepDTO> listBaseStep();

    /**
     * 根据keyStepCode查询关键工序名称
     *
     * @param keyStepCode 关键工序id
     * @return 关键工序名称
     */
    String getBaseStepNameByCode(@Param("keyStepCode") String keyStepCode);

    /**
     * 根据当前登录用户已创建的月度产能规划，选中的productionLineCode和planningDate得到关键工序
     *
     * @param productionLineCode 产线code
     * @param year               年
     * @param month              月
     * @param currentUserId      当前登录用户id
     * @return 关键工序信息
     */
    List<BaseStepDTO> listBaseStepByMonthlyPlanning(@Param("productionLineCode") String productionLineCode,
                                                    @Param("year") Integer year,
                                                    @Param("month") Integer month,
                                                    @Param("currentUserId") Long currentUserId
    );

    /**
     * 根据工序编码得到工序信息
     *
     * @param stepCode 工序编码
     * @return 工序信息
     */
    BaseStep getBaseStepByCode(String stepCode);
}
